package sao.modelo;

import java.text.DateFormat;
import java.util.Date;

public class Agendamento {
	
	private int codAgendamento;
	private int codPaciente;
	private int codMedico;
	private Date horario;
	private String horarioFormatado;
	private String horarioFormatadoLongo;
	
	
	/**
	 * Construtor parametrizado
	 * @param codAgendamento - Inteiro representando o código do agendamento
	 * @param codPaciente - Inteiro representando o código do paciente
	 * @param codMedico - Inteiro representando o código do médico
	 * @param horario - Objeto Date com a data/horário (inicial) do agendamento
	 */
	public Agendamento(int codAgendamento, int codPaciente, int codMedico,
			Date horario) {
		super();
		this.codAgendamento = codAgendamento;
		this.codPaciente = codPaciente;
		this.codMedico = codMedico;
		this.horario = horario;
		this.horarioFormatado = formatarHorario();
		this.horarioFormatadoLongo = formatarHorarioLongo();
	}


	private String formatarHorarioLongo() {
		DateFormat f = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.MEDIUM);
		return f.format(horario);
	}


	/**
	 * @return String com o horário formatado para impressão
	 */
	public String getHorarioFormatado() {
		return horarioFormatado;
	}
	
	
	/**
	 * @return String com o horário formatado para impressão (tipo completo)
	 */
	public String getHorarioFormatadoLongo() {
		return horarioFormatadoLongo;
	}


	/**
	 * Formata o horário para que seja impresso na interface
	 * @return String com a data hora do agendamento
	 */
	private String formatarHorario() {
		DateFormat f = DateFormat.getDateTimeInstance();
		return f.format(horario);
	}


	/**
	 * @return O código do agendamento
	 */
	public int getCodAgendamento() {
		return codAgendamento;
	}


	/**
	 * @return O código do paciente
	 */
	public int getCodPaciente() {
		return codPaciente;
	}


	/**
	 * @return O código do médico
	 */
	public int getCodMedico() {
		return codMedico;
	}


	/**
	 * @return Objeto Date com o horário do agendamento
	 */
	public Date getHorario() {
		return horario;
	}


}//FIM classe Agendamento
